package com.yenlien.traceyun.breed.entity;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import com.yenlien.traceyun.business.entity.TraceScanEntity;
import com.yenlien.traceyun.business.trace.Trace;

/**
 * 养殖管理
 *
 * @author maybe
 * @date 2020年9月22日
 */
@Entity
@Table(name = "t_breed")
@Trace(appName = "breed", stepName = "breed", order = 1)
public class Breed extends TraceScanEntity {
    @Column
    private String breedName;                    //种苗名称
    @Column
    private String seedName;                    //品种名称
    @Column
    private String batch;                        //养殖批号
    @Column
    private String time;                        //养殖时间
    @Column
    private String principalId;                    //养殖负责人ID
    @Column
    private String principalName;                //养殖负责人姓名
    @Column
    private String type;                        //编号类型(耳号、RFID)
    @Column
    private String breedBaseId;                    //养殖基地ID
    @Column
    private String breedBaseName;                //养殖基地名称
    @Column
    private String soilId;                        //养殖区域ID
    @Column
    private String soilName;                    //养殖区域名称
    @Column
    private int breedNumber;                    //养殖数量
    @Column
    private int surplusNumber;                    //剩余量
    @Column
    private String source;                        //来源(养殖、繁殖)
    @Column
    private int outNumber;                        //出厂数量
    @Column
    private int isRecall;                        //是否召回
    @Column
    private int isQuarantine;                    //是否检疫
    //====================================辅助字段====================================
    @Transient
    private List<BreedDetail> breedDetailList;    //养殖详情
    @Transient
    private List<Loss> lossList;                //报损列表
    @Transient
    private List<Feed> feedList;                //喂养列表
    @Transient
    private Quarantine quarantine;    //检疫详情
    @Transient
    private int prevent;    //防疫数量

    /**
     * 关联产品id
     */
    @Column(name = "product_id", length = 32)
    private String productId;

    public int getPrevent() {
        return prevent;
    }

    public void setPrevent(int prevent) {
        this.prevent = prevent;
    }

    public Quarantine getQuarantine() {
        return quarantine;
    }

    public void setQuarantine(Quarantine quarantine) {
        this.quarantine = quarantine;
    }

    public int getIsQuarantine() {
        return isQuarantine;
    }

    public void setIsQuarantine(int isQuarantine) {
        this.isQuarantine = isQuarantine;
    }

    public String getBreedName() {
        return breedName;
    }

    public void setBreedName(String breedName) {
        this.breedName = breedName;
    }

    public String getSeedName() {
        return seedName;
    }

    public void setSeedName(String seedName) {
        this.seedName = seedName;
    }

    public String getBatch() {
        return batch;
    }

    public void setBatch(String batch) {
        this.batch = batch;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }

    public String getPrincipalId() {
        return principalId;
    }

    public void setPrincipalId(String principalId) {
        this.principalId = principalId;
    }

    public String getPrincipalName() {
        return principalName;
    }

    public void setPrincipalName(String principalName) {
        this.principalName = principalName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getBreedBaseId() {
        return breedBaseId;
    }

    public void setBreedBaseId(String breedBaseId) {
        this.breedBaseId = breedBaseId;
    }

    public String getBreedBaseName() {
        return breedBaseName;
    }

    public void setBreedBaseName(String breedBaseName) {
        this.breedBaseName = breedBaseName;
    }

    public String getSoilId() {
        return soilId;
    }

    public void setSoilId(String soilId) {
        this.soilId = soilId;
    }

    public String getSoilName() {
        return soilName;
    }

    public void setSoilName(String soilName) {
        this.soilName = soilName;
    }

    public int getBreedNumber() {
        return breedNumber;
    }

    public void setBreedNumber(int breedNumber) {
        this.breedNumber = breedNumber;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public int getOutNumber() {
        return outNumber;
    }

    public void setOutNumber(int outNumber) {
        this.outNumber = outNumber;
    }

    public int getIsRecall() {
        return isRecall;
    }

    public void setIsRecall(int isRecall) {
        this.isRecall = isRecall;
    }

    public List<BreedDetail> getBreedDetailList() {
        return breedDetailList;
    }

    public void setBreedDetailList(List<BreedDetail> breedDetailList) {
        this.breedDetailList = breedDetailList;
    }

    public List<Loss> getLossList() {
        return lossList;
    }

    public void setLossList(List<Loss> lossList) {
        this.lossList = lossList;
    }

    public List<Feed> getFeedList() {
        return feedList;
    }

    public void setFeedList(List<Feed> feedList) {
        this.feedList = feedList;
    }

    public int getSurplusNumber() {
        return surplusNumber;
    }

    public void setSurplusNumber(int surplusNumber) {
        this.surplusNumber = surplusNumber;
    }

    public String getProductId() {
        return productId;
    }

    public void setProductId(String productId) {
        this.productId = productId;
    }
}
